package com.hjc.springbootmovies.springbootAop;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

/**
 * Created by IntelliJ IDEA.
 * User: HJC
 * Date: 2019/12/11
 * Time: 15:50
 * To change this template use File | Settings | File Templates.
 */
/**
 * ① 在类上使用 @Component 注解 把切面类加入到IOC容器中
 * ② 在类上使用 @Aspect 注解 使之成为切面类
 * */
@Aspect
@Component
public class LogAopAspet {
    /**
     * 定义切入点，切入点为com.example.aop下的所有函数
     */
    @Pointcut("execution(public * com.hjc.springbootmovies.controller.UsersInfoController.*(..))") // ..*
    public void aopInfo(){}

    /**
     * 前置通知：在连接点之前执行的通知
     * */

    @Before("aopInfo()")
    public void before(){
        System.out.println("==========================="+"before"+"===========================");
    }

    /**
     * 后置通知：在连接点之后执行的通知
     * */
    @After("aopInfo()")
    public void after(){
        System.out.println("==========================="+"after"+"===========================");
    }
}
